The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Multi-Master Database Systems
In a typical computer-based multi-master database system, data is stored in a group of databases, data changes may be made to any member of the group, and data changes made to one member are propagated to the rest of the group. Multi-master database systems typically employ either a “synchronous” or an “asynchronous” replication scheme for propagating a change made to one database to the rest of the databases in the group.
In typical synchronous multi-master replication, each change is applied to all databases in the group immediately or to none of the databases if one or more of the databases in the group cannot accept the change. For example, one of the databases may be offline or unavailable. Synchronous multi-master replication is typically achieved using a two-phase commit protocol.
In contrast, in typical asynchronous multi-master replication, a change made to a database is immediately accepted by the database but propagation of the change to other databases in the group may be deferred. Because propagation of changes may be deferred, if one or more of the databases in the group are unavailable, the available databases can still accept changes, queuing the changes locally until they can be propagated. For this reason, multi-master database systems employing an asynchronous replication strategy are generally considered to be more highly available than multi-master database systems employing a synchronous replication strategy. However, asynchronous replication often raises the possibility of conflicts that occur as a result of concurrent database changes. In some circumstances, resolution of these conflicts requires human intervention.
Database Ontologies in Multi-Master Database Systems
Each database system participating in a multi-master database system typically organizes data in the database it manages according to a fixed structure and a well-defined set of data types. For example, a relational database management system typically organizes data according to a fixed structure of tables and columnar data types. The structure and data type definitions may be described using an ontology, embodied in a database schema, comprising a data model that is used to represent the structure, define the data types, and reason about data objects in the structure.
All database systems participating in a multi-master database system normally adhere to the same ontology. The ontology at each database system is normally fixed at the time that the topology of the multi-master database system is established. Any change to an ontology used by one database system that causes the ontology to diverge from the ontologies used by the other database systems is typically extremely disruptive to the multi-master database system and requires a database administrator or a software programmer to create customized software to facilitate data replication between the database system using the diverging ontology and the other database systems in the multi-master database system.
The rigidity of the typical fixed ontology multi-master database system is a serious drawback for organizations that require flexible and dynamic data processing techniques according to changes in the data that is collected. For example, intelligence analysis is poorly suited to conventional fixed ontology multi-master database systems.